var guanpai = require("guanpai");

cc.Class({
    extends: cc.Component,

    properties: {
        
    },

    // use this for initialization
    onLoad: function () {
        cc.log("netEngine onLoad");
        guanpai.netEngine = this;

        // var ws = new WebSocket(guanpai.serverAddress);
        // ws.onopen = function(msg) {
        //     cc.log("onopen: " + msg);
        // }; 
        // ws.onclose = function(msg) {
        //     cc.log("onclose: " + msg);
        // }; 
        // ws.onmessage = function(msg) {
        //     cc.log("onmessage: " + JSON.stringify(msg));
        // }; 
        // ws.onerror = function(msg) {
        //     cc.log("onerror: " + msg);
        // }; 
        // this.ws = ws;
    },

    send: function (identifier, data, callBack) {
        var ws = new WebSocket(guanpai.serverAddress);
        ws.onopen = function (msg) {
            var sendData = {
                "identifier": identifier,
                "data": data,
            };
            if (guanpai.userData != null && guanpai.userData.id != null) {
                sendData.id = guanpai.userData.id;
            }
            var sendString = JSON.stringify(sendData);
            ws.send(sendString);
        };
        ws.onmessage = function(msg) {
            cc.log('net:receive:before: ' + msg.data);
            var data = JSON.parse(msg.data);
            if (data.identifier == identifier) {
                if (callBack != null) {
                    callBack(data.data);
                }
                ws.close();
            }
            else {
                cc.log('net:receive: ' + msg);
            }
        };
    },

    userLogin: function (id) {
        
    },

    

    
});

